const fs = require('fs')
const path = require('path')

/**
 * 读取指定目录下所有 JSON 文件，并合并 JSON 数据为对象
 * @param {string} baseDir - 服务器文件的根目录
 * @param {string} folder - 目标子文件夹
 * @returns {Object} 合并后的 JSON 数据对象
 */
const readServerJsonFiles = (baseDir, folder) => {
  const folderPath = path.join(baseDir, folder)

  if (!fs.existsSync(folderPath)) {
    console.warn(`Warning: ${folderPath} does not exist.`)
    return {}
  }

  // 读取该目录下所有的 JSON 文件
  const jsonFiles = fs.readdirSync(folderPath).filter((file) => file.endsWith('.json'))

  // 遍历文件，读取并解析 JSON 内容
  const jsonData = jsonFiles.reduce((dataAcc, jsonFile) => {
    const jsonFilePath = path.join(folderPath, jsonFile)
    try {
      const fileData = fs.readFileSync(jsonFilePath, 'utf-8')
      const parsedData = JSON.parse(fileData)
      // 直接合并 JSON 数据
      Object.assign(dataAcc, parsedData)
    } catch (err) {
      console.error(`Error reading or parsing ${jsonFile}:`, err)
    }
    return dataAcc
  }, {})

  return jsonData
}

module.exports = { readServerJsonFiles }
